package com.ruoyi.common.utils;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;

public class FileMover {
    /**
     * @param sourceDirPath 源文件夹路径（如：D:/source）
     * @param targetRootPath 目标根目录（如：D:/target）
     */
    public static void moveFilesToCustomFolders(String sourceDirPath, String targetRootPath) {
        File sourceDir = new File(sourceDirPath);
        if (!sourceDir.isDirectory()) {
            System.err.println("源路径不是有效目录");
            return;
        }

        File[] files = sourceDir.listFiles();
        if (files == null) return;

        for (File file : files) {
            if (!file.isFile()) continue; // 跳过目录

            String fileName = file.getName();
            // 提取文件名（去除扩展名）
            String folderName = fileName.contains(".")
                    ? fileName.substring(0, fileName.lastIndexOf('.'))
                    : fileName;

            String[] laNames = folderName.split("_");

            String laName = laNames[0] + "_" + laNames[1];

           String targetPath = targetRootPath+"\\"+laName+"_SM";
            // 构建目标路径
            Path targetDir = Path.of(targetPath);
            Path targetFilePath = targetDir.resolve(fileName);
            try {
                // 创建目标目录
                Files.createDirectories(targetDir);
                // 移动文件（覆盖已存在文件）
                Files.move(file.toPath(), targetDir, StandardCopyOption.COPY_ATTRIBUTES);
                System.out.println("已移动文件: " + fileName + " → " + targetDir);
            } catch (IOException e) {
                System.err.println("移动文件失败: " + fileName + " - " + e.getMessage());
            }
        }
    }

    public static void main(String[] args) {
        moveFilesToCustomFolders("C:\\Users\\lenovo\\Desktop\\去背景", "D:\\BaiduNetdiskDownload\\实物素描\\new\\Object_3k\\1_Natural\\1_Animals\\1_Dog");
    }
}
